// src/store/service/comment.ts
import apiService from "@service/index";
export const commentApiService = apiService
.injectEndpoints({
    endpoints: (builder) => ({
      // 获取评论列表或回复列表
      // type: a 获取对文章评论列表，c 获取评论回复列表
      // source: 文章 id 或评论 id
      // offset: 用于实现分页, 数据的偏移量, 值为评论id, 表示从此 id 的数据向后取, 不传表示从第一页开始读取数据
      // limit: 获取的评论数据个数, 不传表示采用后端服务设定的默认每页数据量
      //<CommentResponse,
      //{ type: "a" | "c"; source: string; offset?: string | null; limit?: number }
    //>
      requestComments: builder.mutation({
        query: (params) => ({ url: "/comments", params })
      })
    }),
  })
  .injectEndpoints({
    endpoints: (builder) => ({
      // 发表文章评论或对评论进行回复
      // target: 评论文章即为文章id，对评论进行回复则为评论id
      // content: 评论内容
      // art_id: 文章id, 对评论内容发表回复时需要传递此参数, 对文章进行评论不要传此参数
      publishComment: builder.mutation<
        GeekResponse<{ com_id: string; target: string; art_id: string }>,
        { target: string; content: string; art_id?: string }
      >({
        query: (body) => ({ url: "/comments", method: "POST", body })
      }),
    }),
  });
  export const { useRequestCommentsMutation, usePublishCommentMutation } = commentApiService;